#ifndef reservation_h
#define reservation_h

#include <string>
#include "data.h"
#include "flight.h"

using std::string;

class Reservation: public Data
   {
   public:
       Reservation();
       Reservation(string rowFromCsv);
       ~Reservation();

       string getFirstName();
       string getLastName();
       string getDateOfBirth();
       string getPhoneNumber();
       Flight getFlight();
       int getNumbags();
       bool isDisabled();

       void setName(string first, string last);
       void setDateOfBirth(string dateOfBirth);
       void setPhoneNumber(string phoneNum);
       void setFlight(Flight *);
       void setNumBags(int num);
       void setNeedsAssistance(bool);

       void makeConfirmation();

   private:
       static int nextId;
           //classwide static. initialized to the next id the system will give to a reservation;
       int id;
           //unique id
       string firstName;
           //passenger's first name
       string lastName;
           //passenger's last name
       string dateOfBirth;
           //date the passenger was born
       string phoneNumber;
           //phone number string (555) 555-5555
       bool needsAssistance;
           //does the passenger have a disability they need assistance with?
       int numBags;
           //0 or 1
       string confirmationNumber;
           //the confirmation number generated after the reservation;
       Flight *flight;
           //the flight this reseration is reserved for
       string dateOfReservation;
   };

#endif
